/*
    Union-find 采取树形结构进行分组, 未优化
    每一组以根元素的编号为标识
*/ 

class union_find
{
public:
    // 初始化, 各自为一组
    union_find(int quantity = 0);

    ~union_find();

    void unite(int group_sign1, int group_sign2);

    int find(int element_num);

private:
    int* m_parent_num;  // 记录每个元素的父元素的编号
    int m_quantity; // 总共要进行分组的元素的数量
};